package com.gehj.androidlibs;

import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Toast;

import com.gehj.androidlibs.Utils.FuctionUtils;
import com.gehj.androidlibs.Utils.ReadFileUtil;
import com.gehj.androidlibs.Utils.Utils;
import com.gehj.commonui.DialogUtils;
import com.gehj.commonui.MyView;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 *
 * 各种测试功能目录类
 * @author gehj
 * @date 2021/1/4 10:44
 * TODO 没有网的缓存，旋转或冷启动的保存状态
 *    jetpak - 视频 - okhttp的缓存
 *    做app一个是没网时候要出现布局 -- 好司机犯的错 -- 利用广播+liveData实现
 *    另一个有网络了要及时刷新 -- boss直聘犯的错误
 *
 *
 *
 * ** TODO 总结的bussiness的重要的流程
 *  *  * * TODO 中间有圆的架构
 *  *           https://blog.csdn.net/xh870189248/article/details/75808341
 *  *           https://blog.csdn.net/chengmuzhe2690/article/details/89406085
 *  *  * * TODO 短信验证 内存泄漏
 *  *  * * TODO 跳转打开文件工具类 修改
 *  *  * * TODO zxing总结 - zbar的UI的进化
 *  *  * * TODO gif的总结
 *  *  * * TODO 验证码的内存泄漏
 *
 *
 * * TODO 做过项目的总结
 *  * TODO a_v_4相关项目的总结 - listview的总结
 *  * * TODO 晋中项目 照相照片选择框架
 *  * * TODO 硬件通用总结写法
 *  * * TODO 自定义键盘总结 - 蓝牙-android6 - 光照封装 - rx蓝牙进化
 *  * * TODO 摇一摇 等 震动的封装
 *  * * TODO 各种底层的封装 人脸识别
 *
 * //IMPORTANT：以下长期
 * TODO imooc的总结 长期
 * * TODO gradle视频 长期
 * * TODO 内存优化视频 电量 长期
 * * TODO UI的优化 布局优化
 * * TODO 面试视频中提到的优化
 * * TODO 自定义UI
 *        圆形view
 *         涟漪
 *         三色渐变的demo
 *
 *
 * * TODO Android Utils 两个总结
 * * TODO 各种好的开源总结
 * * TODO 马书杏的XUI 里面好的东西
 *
 *
 * TODO android 6 的资料的进化 - 我github文档的总结
 * * TODO webview -music  - 腾讯的 - 带进度条的 -js总结等 - 开源项目
 * * TODO webview -- music的总结 -- 其他
 * * TODO android6 动画的总结 -- 约束布局等的
 *
 *
 *  * TODO imooc_music的拆解 各种简化的处理方式，如果就播放一首歌曲
 *  * TODO 涟漪效果等
 *  * TODO 图片放大，音频放大
 *  * TODO 试验转场动画实验 https://android.devdon.com/archives/379
 *  * TODO imooc_music 继续音视频 - ARutor
 * *  TODO 好的UI
 * *  TODO 接口回调修改 - livedata
 *

 *
 * TODO 面试的资料再过几遍
 * * TODO 过handler源码 观察handler的过程 - 对比handler与线程池
 * * TODO 百度那哥们的书
 *
 *
 *TODO 硬件的流程总结 封装
 ** TODO linphone的封装
 * TODO 李栋优化
 *      验证码
 *
 *
 * TODO 其他
 * TODO 喜马拉雅 -- 返回去找播放实属不易 需要动态的跟个球
 * TODO 腾讯的播放球
 * TODO 首页加载视频
 * TODO 引导页 + 视频 蒙版 动画
 * * TODO 傅圆圆 滑动到一定高度布局进行变化
 * * TODO 第一行代码 第三版 - 下拉可伸缩布局
 * *  类似 喜马拉雅 百度 上滑抽屉 滑动到一定界面
 * *  轮播 - 各种开源控件
 *
 *  TODO mvvmhabit拆了他 - 打代码需要注意的东西
 *
 *
 */

public class MainActivity_index extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_index);
        initPermision();
    }

    private void initPermision() {
        FuctionUtils.getPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE);
    }
    /**
     * hander内存泄漏
     * @param view
     */
    public void static_handler(View view) {
        Intent intent = new Intent(this, MainActivity_handler.class);
        startActivity(intent);

    }


    /**
     * rxjava测试
     * @param view
     */
    public void rxjava(View view) {
        Intent intent = new Intent(this,MainRxActivity.class);
        startActivity(intent);
    }


    /**
     * handler thread 测试
     * @param view
     */
    public void hander_thread(View view) {
        // TODO: 2021/1/5 handerthread
        Toast.makeText(this, "TODO", Toast.LENGTH_SHORT).show();
    }


    /**
     * fragment的各种注意
     * @param view
     */
    public void fragment(View view) {
        DialogUtils.showNormalDialog(this,
                "看fragment包中BlankFragment源码",R.drawable.ic_launcher_foreground);
    }

    /**
     * app的几种架子 fragment+viewpager 的不同容器
     * @param view
     */
    public void frame(View view) {
        DialogUtils.showNormalDialog(this,
                "1.linerlayout容器--在mashgasMonitoring.MainActivity" +
                        "中的中" +
                        "2.Tablayout容器--bussiness2的MainAcitity" +
                        "3.仿微信--bussiness.MainActivity_wechat" +
                        "4.底部tab的view-jetpack组件-googleTemplate-BottomTabActivity" +
                        "5.侧滑菜单--googleTemplate—-DrawLayout_google",
                R.drawable.ic_launcher_foreground);

    }

    /**
     * 测试getActivity为null以及内存泄漏
     * @param view
     */
    public void testLeakAndgetActivityNull(View view) {

        Intent intent = new Intent(this,NoticeyActivityframe.class);
        startActivity(intent);

    }

    /**
     * fragment动画
     * @param view
     */
    public void fragment_animation(View view) {
        //3个有一定旋转角度的view -- 在viewpager中
        Intent intent1 = new Intent(this,BannerActivity.class);
        //3个有缩放+透明度变化 -- 类似于翻书效果的viewpager
        Intent intent2 = new Intent(this,SplashActivity.class);
        startActivity(intent1);

    }


    /**
     * 无限指示的tablayout
     * */
    public void tabLayout_viewpager(View view) {
        Intent intent = new Intent(this,TabLayoutActivity.class);
        startActivity(intent);

    }


    /**
     * mvvmDemo
     * @param view
     */
    public void mvvmDemo(View view) {


    }

    /**
     * 仪表盘
     * @param view
     */
    public void dashbroad(View view) {
        Intent intent = new Intent(this,DashBroadActivity.class);
        startActivity(intent);
    }

    public void dialogtest(View view) {
        //必须加上如下style才能真正变透明
        //https://blog.csdn.net/lmj121212/article/details/50233031
        //https://blog.csdn.net/wuyou1336/article/details/50687937?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
        AlertDialog dialog = new AlertDialog.Builder(this,R.style.dialog_style).create();
        dialog.show();//必须先show
        View view1 = LayoutInflater.from(this).
                inflate(R.layout.transparent_closebutton_dialog,null);
        dialog.setContentView(view1);


    }
    /**
     *
     * 中部突出
     *
     * */
    public void middle_extrde(View view) {
        Intent intent = new Intent(this,MiddleExtrudeActivity.class);
        startActivity(intent);

    }

    /**
     * 尝试读取文件
     * @param view
     */
    private static final String TAG = "MainActivity_index";
    public void read_txt(View view) {
        String path = Environment.getExternalStorageDirectory()+"/Download/WeiXin/test.txt";
        File file = new File(path);

        Log.e(TAG, "isxxxxx: "+ file.exists()+":"+file.isFile());
        String s =  ReadFileUtil.ReadTxtFile_ip(file);

        //InputStream fileInputStream =  Utils.getInputStream(this,path);
       // String s = Utils.getString(this, fileInputStream);
        Log.e(TAG, "read_txt: "+ s );
    }
}